package com.yang.springcloud.config;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @author yds
 * @program springcloud
 * @description 用于配置spring bean
 * @create 2020-09-17 16:38
 **/
@Configuration
public class ConfigBean {
    // 配置负载均衡使用RestTemplate
    // Ribbon 负载均衡 IRule 重新负载均衡算法
    // IRule
    // RoundRobinRule 轮询
    // RandomRule 随机数
    // AvailabilityFilteringRule 先过滤,跳闸,访问故障的服务~,对剩下的进行轮询
    // RetryRule: 会先按照轮询获取服务~,如果服务获取失败,会在指定时间内重试
    @Bean
    @LoadBalanced //默认是轮询
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
//   注入随机算法
//    @Bean
//    public IRule myRule(){
//        return new RandomRule();
//    }
}
